"""
if条件语句
学习目标：
1. 理解条件判断的概念
2. 掌握if语句的基本语法
3. 学会使用缩进表示代码块
4. 掌握if语句的实际应用
"""

# ==================== 1. if语句基础 ====================
print("=" * 50)
print("1. if语句基础")
print("=" * 50)

print("if语句的基本结构：")
print("""
if 条件:
    代码块
""")

# 简单的if语句
age = 20
if age >= 18:
    print(f"年龄{age}岁，已成年")

print("\n💡 关键点：")
print("  - if后面跟条件表达式")
print("  - 条件后面要加冒号 :")
print("  - 代码块要缩进（通常4个空格）")
print("  - 条件为True时，执行代码块")

print()

# ==================== 2. 条件表达式 ====================
print("=" * 50)
print("2. 各种条件表达式")
print("=" * 50)

# 比较运算作为条件
score = 85
if score >= 60:
    print(f"分数{score}，及格了！")

# 逻辑运算作为条件
temperature = 28
is_sunny = True
if temperature > 25 and is_sunny:
    print(f"温度{temperature}度，天气晴朗，适合出游！")

# 成员运算作为条件
username = "admin"
admin_list = ["admin", "root", "manager"]
if username in admin_list:
    print(f"用户{username}是管理员")

# 布尔值作为条件
is_logged_in = True
if is_logged_in:
    print("用户已登录")

print()

# ==================== 3. 缩进的重要性 ====================
print("=" * 50)
print("3. 缩进决定代码块的范围")
print("=" * 50)

age = 25
print(f"年龄：{age}")

if age >= 18:
    print("  这行属于if代码块（有缩进）")
    print("  这行也属于if代码块（有缩进）")
    result = "成年人"
    print(f"  判断结果：{result}")

print("这行不属于if代码块（无缩进）")
print()

print("⚠️ Python使用缩进来组织代码结构")
print("   - 同一代码块的缩进必须一致")
print("   - 推荐使用4个空格")
print("   - 不要混用空格和Tab")

print()

# ==================== 4. 实战：成绩判断 ====================
print("=" * 50)
print("4. 实战：成绩及格判断")
print("=" * 50)

student_name = "张三"
math_score = 75

print(f"学生：{student_name}")
print(f"数学成绩：{math_score}分")

if math_score >= 60:
    print("✅ 恭喜！数学成绩及格")

if math_score >= 90:
    print("🎉 优秀！数学成绩优秀")

if math_score < 60:
    print("❌ 很遗憾，数学成绩不及格")

print()

# ==================== 5. 实战：年龄分类 ====================
print("=" * 50)
print("5. 实战：年龄分类")
print("=" * 50)

name = "小明"
age = 16

print(f"姓名：{name}")
print(f"年龄：{age}岁")
print()

if age < 18:
    print("分类：未成年人")
    print("提示：请在家长陪同下使用")

if age >= 18:
    print("分类：成年人")
    print("提示：享有完全民事权利")

print()

# ==================== 6. 实战：购物满减 ====================
print("=" * 50)
print("6. 实战：购物满减活动")
print("=" * 50)

total_amount = 150

print(f"购物金额：¥{total_amount}")
print()

if total_amount >= 100:
    discount = 20
    final_amount = total_amount - discount
    print(f"🎉 满100减20优惠！")
    print(f"优惠金额：¥{discount}")
    print(f"实付金额：¥{final_amount}")

if total_amount < 100:
    need_more = 100 - total_amount
    print(f"💰 再购买¥{need_more}可享受满100减20优惠")

print()

# ==================== 7. 实战：温度提醒 ====================
print("=" * 50)
print("7. 实战：温度健康提醒")
print("=" * 50)

temperature = 38.5

print(f"当前体温：{temperature}°C")
print()

if temperature > 37.3:
    print("⚠️ 体温偏高！")
    print("建议：")
    print("  1. 多喝水")
    print("  2. 注意休息")
    print("  3. 如持续发热，请就医")

if temperature >= 36.0 and temperature <= 37.3:
    print("✅ 体温正常")

if temperature < 36.0:
    print("⚠️ 体温偏低！")
    print("建议：注意保暖")

print()

# ==================== 8. 实战：会员权益 ====================
print("=" * 50)
print("8. 实战：会员权益判断")
print("=" * 50)

is_vip = True
points = 1200

print(f"VIP会员：{is_vip}")
print(f"积分：{points}")
print()

print("会员权益：")

if is_vip:
    print("✅ 专属客服")
    print("✅ 生日礼物")
    print("✅ 优先发货")

if points >= 1000:
    print("✅ 可兑换精美礼品")
    print("✅ 享受额外折扣")

if is_vip and points >= 1000:
    print("🎁 高级会员特权：免费包邮")

print()

# ==================== 9. 实战：登录验证 ====================
print("=" * 50)
print("9. 实战：用户登录验证")
print("=" * 50)

input_username = "admin"
input_password = "123456"
correct_username = "admin"
correct_password = "123456"

print(f"输入用户名：{input_username}")
print(f"输入密码：{'*' * len(input_password)}")
print()

if input_username == correct_username and input_password == correct_password:
    print("✅ 登录成功！")
    print("欢迎回来！")

if input_username != correct_username:
    print("❌ 用户名错误")

if input_password != correct_password:
    print("❌ 密码错误")

print()

# ==================== 10. 实战：闰年判断 ====================
print("=" * 50)
print("10. 实战：闰年判断")
print("=" * 50)

year = 2024

print(f"年份：{year}")

# 闰年规则：
# 1. 能被4整除但不能被100整除
# 2. 或者能被400整除

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}年是闰年 🎉")
    print("二月有29天")

if not ((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)):
    print(f"{year}年是平年")
    print("二月有28天")

print()

# ==================== 11. 实战：字符串判断 ====================
print("=" * 50)
print("11. 实战：字符串内容判断")
print("=" * 50)

text = "Hello Python"

print(f"文本：'{text}'")
print()

if "Python" in text:
    print("✅ 文本包含'Python'")

if text.startswith("Hello"):
    print("✅ 文本以'Hello'开头")

if text.endswith("Python"):
    print("✅ 文本以'Python'结尾")

if len(text) > 10:
    print(f"✅ 文本长度({len(text)})超过10个字符")

if text.isupper():
    print("文本全是大写")
if not text.isupper():
    print("文本不全是大写")

print()

# ==================== 12. 实战：数字范围判断 ====================
print("=" * 50)
print("12. 实战：数字范围判断")
print("=" * 50)

number = 85

print(f"数字：{number}")
print()

if number > 0:
    print("是正数")

if number < 0:
    print("是负数")

if number == 0:
    print("是零")

if number % 2 == 0:
    print("是偶数")

if number % 2 != 0:
    print("是奇数")

if 80 <= number <= 90:
    print("在80到90之间（包含）")

if number >= 100:
    print("大于等于100")

print()

# ==================== 13. 实战：列表判断 ====================
print("=" * 50)
print("13. 实战：列表内容判断")
print("=" * 50)

fruits = ["apple", "banana", "orange"]

print(f"水果列表：{fruits}")
print()

if "apple" in fruits:
    print("✅ 列表中有苹果")

if "grape" in fruits:
    print("列表中有葡萄")

if len(fruits) > 0:
    print(f"✅ 列表不为空，有{len(fruits)}个元素")

if len(fruits) >= 3:
    print("✅ 列表元素数量>=3")

print()

# ==================== 14. 实战：None值检查 ====================
print("=" * 50)
print("14. 实战：None值检查")
print("=" * 50)

user_input = None
default_value = "未设置"

print(f"用户输入：{user_input}")

if user_input is None:
    print("⚠️ 用户未输入，使用默认值")
    actual_value = default_value
    print(f"实际值：{actual_value}")

if user_input is not None:
    print("用户已输入")
    actual_value = user_input

print()

# ==================== 15. 实战：多条件组合 ====================
print("=" * 50)
print("15. 实战：复杂条件判断")
print("=" * 50)

age = 22
has_license = True
has_car = False
has_experience = True

print(f"年龄：{age}岁")
print(f"有驾照：{has_license}")
print(f"有车：{has_car}")
print(f"有经验：{has_experience}")
print()

print("判断结果：")

if age >= 18 and has_license:
    print("✅ 符合驾驶基本条件")

if age >= 18 and has_license and has_car:
    print("✅ 可以开自己的车")

if has_license and has_experience:
    print("✅ 有经验的驾驶员")

if age < 25 and has_license:
    print("⚠️ 年轻驾驶员，注意安全")

if not has_car:
    print("💡 建议：可以考虑租车或拼车")

print()

# ==================== 总结 ====================
print("=" * 50)
print("✨ if语句总结")
print("=" * 50)
print("""
1. 基本语法：
   if 条件:
       代码块

2. 关键点：
   ✅ 条件后面要有冒号 :
   ✅ 代码块必须缩进（4个空格）
   ✅ 条件为True时执行代码块
   ✅ 条件为False时跳过代码块

3. 条件类型：
   - 比较运算：age >= 18
   - 逻辑运算：age >= 18 and has_id
   - 成员运算："admin" in users
   - 身份运算：value is None
   - 布尔值：is_active

4. 实用技巧：
   - 使用链式比较：10 < x < 20
   - 检查None用is：if value is None
   - 多个独立if可以都执行
   - 注意缩进一致性

5. 常见应用：
   - 条件判断
   - 数据验证
   - 权限检查
   - 错误处理
""")
print("=" * 50)

